A large number of storage systems are used in data centers, individual companies, and the like. Some storage systems include a plurality of storage controllers.
In the case where a new logical volume is created in such a system including a plurality of storage controllers, the data access performance (i.e., the input/output performance) is influenced by which storage controller manages the new logical volume. That is, if an access request to the new logical volume is issued after the creation of the new logical volume, the performance (for example, latency) concerning this access request may vary depending on which storage controller manages the new logical volume.
Accordingly, it is desirable to select an appropriate storage controller such that preferable data access performance can be obtained. An aspect of the selection relates to load balancing.
The load balancing is studied in various fields including not only the field of storage systems but also the fields of server clusters, data distribution among a plurality of computers, and the like.
For example, a certain data distribution method is a method for distributing data processed by a plurality of computers, to each computer. The data distribution method is intended to distribute, to the plurality of computers, data having an appropriate size depending on the throughput of each computer, to thereby make the best use of the throughput of each computer at the time of data processing.
Specifically, the data distribution method includes a step of acquiring the throughput of each computer to which the data is to be distributed and storing the acquired throughput in a storage device. The data distribution method further includes a step of acquiring the size of data to be distributed to each of the plurality of computers and storing the acquired data size in the storage device. The data distribution method further includes a step of reading the stored throughput and the stored data size from the storage device, calculating an expected time for each computer to process the data, and deciding to which computer the data is to be distributed, according to the calculation results.
Here, a method that may be adopted to acquire the throughput includes, for example, measuring a processing time for test data, storing the measured processing time in a storage device, and calculating the throughput from the value of the processing time. Measurement of a processing time in a broad sense may also be performed, for example, in a certain type of agent program monitoring method in order to judge the state of the load.
Some documents, such as Japanese Laid-open Patent Publication Nos. 2003-36210 and 2006-113868, are known.